151 research outputs found

    The Data-Parallel Programming Model: a Semantic Perspective (Final Version)

    Get PDF
    We provide a short introduction to the data-parallel programming model. We argue that parallel computing often makes little distinction between the execution model and the programming model. This results in poor programming and low portability. Using the «GOTO considered harmful» analogy, we show that data parallelism can be seen as a way out of this difficulty. We show that important aspects of the data-parallel model were already present in earlier approaches to parallel programming, and demonstrate that the data-parallel programming model can be characterized by a small number of concepts with simple semantics

    A Logical Framework to Prove Properties of Alpha Programs (revised version)

    Get PDF
    We present an assertional approach to prove properties of Alpha programs. Alpha is a functional language based on affine recurrence equations. We first present two kinds of operational semantics for Alpha together with some equivalence and confluence properties of these semantics. We then present an attempt to provide Alpha with an external logical framework. We therefore define a proof method based on invariants. We focus on a particular class of invariants, namely canonical invariants, that are a logical expression of the program's semantics. We finally show that this framework is well-suited to prove partial properties, equivalence properties between Alpha programs and properties that we cannot express within the Alpha languag

    Enabling Lock-Free Concurrent Fine-Grain Access to Massive Distributed Data: Application to Supernovae Detection

    Get PDF
    We consider the problem of efficiently managing massive data in a large-scale distributed environment. We consider data strings of size in the order of Terabytes, shared and accessed by concurrent clients. On each individual access, a segment of a string, of the order of Megabytes, is read or modified. Our goal is to provide the clients with efficient fine-grain access the data string as concurrently as possible, without locking the string itself. This issue is crucial in the context of applications in the field of astronomy, databases, data mining and multimedia. We illustrate these requiremens with the case of an application for searching supernovae. Our solution relies on distributed, RAM-based data storage, while leveraging a DHT-based, parallel metadata management scheme. The proposed architecture and algorithms have been validated through a software prototype and evaluated in a cluster environment

    Extension de la plate-forme DSM-PM2 pour le support de protocoles de cohérence relùchée multithreads

    Get PDF
    International audienceDans leur prĂ©sentation traditionnelle, les bibliothĂšques de gestion de mĂ©moire distribuĂ©e virtuel- lement partagĂ©e (MVP, en anglais DSM) [8, 11, 12, 4] permettent Ă  des processus de partager un espace d'adressage commun selon un modĂšle de cohĂ©rence fixĂ©. L'objectif du projet DSM-PM2 est de fournir au programmeur d'application distribuĂ©e multithread une plate-forme d'implĂ©men- tation oĂč il puisse dĂ©velopper et optimiser conjointement son application et le protocole de co- hĂ©rence MVP qui la supporte, de maniĂšre portable. DSM-PM2 est actuellement disponible sur des grappes de PC sous Linux, avec les rĂ©seaux Ethernet, Myrinet et SCI, et les interface de communication TCP, MPI, BIP, SISCI, VIA, etc. DSM-PM2 fournit les briques de base pour la construction d'une large classe de protocoles de cohĂ©rence utilisables dans un environnement d'exĂ©cution multithread : il gĂ©nĂ©ralise donc les fonctionnalitĂ©s de MVP comme DSM-Threads [9] et Millipede [5]. À partir de ces briques, 6 protocoles de cohĂ©rence sont dĂ©jĂ  construits dans la version actuelle. L'utilisateur peut faci- lement les modifier ou en ajouter d'autres. Dans cet article, nous dĂ©crivons la mise en place sous DSM-PM2 des deux protocoles de cohĂ©rence relĂąchĂ©e multithreads et un aperçu de leurs performances

    BlobSeer: How to Enable Efficient Versioning for Large Object Storage under Heavy Access Concurrency

    Get PDF
    To accommodate the needs of large-scale distributed P2P systems, scalable data management strategies are required, allowing applications to efficiently cope with continuously growing, highly dis tributed data. This paper addresses the problem of efficiently stor ing and accessing very large binary data objects (blobs). It proposesan efficient versioning scheme allowing a large number of clients to concurrently read, write and append data to huge blobs that are fragmented and distributed at a very large scale. Scalability under heavy concurrency is achieved thanks to an original metadata scheme, based on a distributed segment tree built on top of a Distributed Hash Table (DHT). Our approach has been implemented and experimented within our BlobSeer prototype on the Grid'5000 testbed, using up to 175 nodes

    An Efficient and Transparent Thread Migration Scheme in the PM2 Runtime System

    Get PDF
    International audienceThis paper describes a new iso-address approach to the dynamic allocation of data in a multithreaded runtime system with thread migration capability. The system guarantees that the migrated threads and their associated static data are relocated exactly at the same virtual address on the destination nodes, so that no post-migration processing is needed to keep pointers valid. In the experiments reported, a thread can be migrated in less than 75ÎŒs

    A Multithreaded Runtime Environment with Thread Migration for HPF and C* Data-Parallel Compilers

    Get PDF
    This paper studies the benefits of compiling data-parallel languages onto a multithreaded runtime environment providing dynamic thread migration facility. Each abstract process is mapped onto a thread, so that dynamic load balancing can be achieved by migrating threads among the processing nodes. We describe and evaluate an implementation of this idea in the Adaptor HPF and the UNH C* data-parallel compilers. We show that no deep modifications of the compilers are needed, and that the overhead of managing threads can be kept small. As an experimental validation, we report on an HPF implementation of the Gauss Partial Pivoting algorithm. We show that the initial BLOCK data distribution with our dynamic load balancing scheme can reach the performance of the optimal CYCLIC distribution

    Going Large-scale in P2P Experiments Using the JXTA Distributed Framework

    Get PDF
    The interesting properties of P2P systems (high availability despite node volatility, support for heterogeneous architectures, high scalability, etc.) make them attractive for distributed computing. However, conducting large-scale experiments with these systems arise as a major challenge. Simulation allows to model only partially the behavior of P2P prototypes. Experiments on real testbeds encounter serious difficulty with large-scale deployment and control of peers. This paper shows that using an optimized version of the JXTA Distributed Framework (JDF) allows to easily deploy, configure and control P2P experiments. We illustrate these features with sample tests performed with our JXTA-based grid data sharing service, for various large-scale configurations

    Pyramid: A large-scale array-oriented active storage system

    Get PDF
    International audienceThe recent explosion in data sizes manipulated by distributed scientific applications has prompted the need to develop specialized storage systems capable to deal with specific access patterns in a scalable fashion. In this context, a large class of applications focuses on parallel array processing: small parts of huge multi-dimensional arrays are concurrently accessed by a large number of clients, both for reading and writing. A specialized storage system that deals with such an access pattern faces several challenges at the level of data/metadata management. We introduce Pyramid, an active array-oriented storage system that addresses these challenges and shows promising results in our initial evaluation

    Extension de la plate-forme DSM-PM2 pour le support de protocoles de cohérence relùchée multithreads

    Get PDF
    International audienceDans leur prĂ©sentation traditionnelle, les bibliothĂšques de gestion de mĂ©moire distribuĂ©e virtuel- lement partagĂ©e (MVP, en anglais DSM) [8, 11, 12, 4] permettent Ă  des processus de partager un espace d'adressage commun selon un modĂšle de cohĂ©rence fixĂ©. L'objectif du projet DSM-PM2 est de fournir au programmeur d'application distribuĂ©e multithread une plate-forme d'implĂ©men- tation oĂč il puisse dĂ©velopper et optimiser conjointement son application et le protocole de co- hĂ©rence MVP qui la supporte, de maniĂšre portable. DSM-PM2 est actuellement disponible sur des grappes de PC sous Linux, avec les rĂ©seaux Ethernet, Myrinet et SCI, et les interface de communication TCP, MPI, BIP, SISCI, VIA, etc. DSM-PM2 fournit les briques de base pour la construction d'une large classe de protocoles de cohĂ©rence utilisables dans un environnement d'exĂ©cution multithread : il gĂ©nĂ©ralise donc les fonctionnalitĂ©s de MVP comme DSM-Threads [9] et Millipede [5]. À partir de ces briques, 6 protocoles de cohĂ©rence sont dĂ©jĂ  construits dans la version actuelle. L'utilisateur peut faci- lement les modifier ou en ajouter d'autres. Dans cet article, nous dĂ©crivons la mise en place sous DSM-PM2 des deux protocoles de cohĂ©rence relĂąchĂ©e multithreads et un aperçu de leurs performances
    • 

    corecore